ed57c3da93bd1deacd3134bbe9c8008e40569e31,Dart/src/com/jetbrains/lang/dart/analyzer/DartAnalysisServerService.java,DartAnalysisServerService,analysis_getErrors,#PsiFile#,209
Before Change
semaphore.down();
final String path = FileUtil.toSystemDependentName(file.getOriginalFile().getVirtualFile().getPath());
myServer.analysis_getErrors(path, new GetErrorsConsumer() {
@Override
public void computedErrors(final AnalysisError[] errors) {
resultError.set(errors);
semaphore.up();
}
});
semaphore.waitFor(10000);
return resultError.get();
}
After Change
semaphore.down();
try {
myServer.analysis_getErrors(FileUtil.toSystemDependentName(vFile.getPath()), new GetErrorsConsumer() {
@Override
public void computedErrors(final AnalysisError[] errors) {
if (semaphore.tryUp()) {
resultError.set(errors);
}
else {
// semaphore unlocked by timeout, schedule to highlight the file again
ApplicationManager.getApplication().runReadAction(new Runnable() {
@Override
public void run() {
final Project project = psiFile.isValid() ? psiFile.getProject() : null;
if (project != null && !project.isDisposed()) {
DaemonCodeAnalyzer.getInstance(project).restart(psiFile);
}
}
});
}
}
});
semaphore.waitFor(5000);
}